Gestion des phrases de passe et des en-têtes Luks

Table des matières

1 - Gestion des phrases de passe

1.1 - Slots disponibles

1.2 - Ajout d'une nouvelle phrase de passe

1.2 - Suppression

1.3 - Remplacement

2 - Gestion des en-têtes Luks

2.1 - Protection

2.2 - Effacement

1 - Gestion des phrases de passe

1.1 - Slots disponibles

$ sudo  cryptsetup luksDump /dev/sdb1 |grep ENABLED

Key Slot 0: ENABLED

$ sudo cryptsetup luksDump /dev/sdb6 |grep luks2

  0: luks2

  1: luks2

1.2 - Ajout d'une nouvelle phrase de passe

$ sudo cryptsetup luksAddKey /dev/sdb1

Entrez une phrase de passe existante :

Entrez une nouvelle phrase secrète pour l'emplacement de clé :

Vérifiez la phrase secrète :

$ sudo cryptsetup luksAddKey /dev/sdb1 --key-file <chemin/fichier/phrase_existante>

Entrez une nouvelle phrase secrète pour l'emplacement de clé :

Vérifiez la phrase secrète :

$ sudo cryptsetup luksAddKey /dev/sdb1 --key-file <chemin/fichier/phrase_existante> <chemin/fichier/phrase_nouvelle>

$ sudo cryptsetup luksAddKey /dev/sdb1 --key-slot 3

1.2 - Suppression

Attention : luks ne prévient pas si l'on supprime la dernière phrase de passe! Une fois la dernière phrase de passe supprimée, l'accès au conteneur et à son contenu sera définitivement perdu (sauf si recharge de l'entête : voir ci-dessous).

$ sudo cryptsetup luksRemoveKey /dev/sdb1

Entrez la phrase secrète à effacer :

$ sudo cryptsetup luksRemoveKey /dev/sdb1 --key-file /etc/keys/passphrase

$ sudo cryptsetup luksKillSlot /dev/sdb1 2

Entrez toute phrase secrète restante :

$ sudo cryptsetup luksKillSlot /dev/sdb1 2 --key-file /etc/keys/passphrase

1.3 - Remplacement

$ sudo cryptsetup luksChangeKey /dev/sdb1

Entrez la phrase secrète à changer :

Entrez la nouvelle phrase secrète :

Vérifiez la phrase secrète :

$ sudo cryptsetup luksChangeKey /dev/sdb2 --key-file boot.key root.key

 

2 - Gestion des en-têtes Luks

2.1 - Protection

L’en-tête luks et les phrases de passe qui y sont stockés ne sont pas protégés en cas de bloc ou secteur défectueux. La corruption de l'en-tête provoquera la perte de l'accès au conteneur et à son contenu.

Il est donc conseillé de sauvegarder l'en-tête, par exemple dans une ou des partitions non chiffrées (boot, ESP, ...) et dans un gestionnaire de mots de passe sauvegardé.

$ sudo cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file <nom_fichier_backup>

$ sudo chown <user>:<user> <nom_fichier_backup>

.... et faire une sauvegarde du fichier!

$ sudo cryptsetup -v --header <nom_fichier_backup> luksOpen /dev/sdb1 test

$ sudo cryptsetup luksHeaderRestore /dev/sdb1 --header-backup-file <nom_fichier_backup>

WARNING!

========

Périphérique /dev/sdb1 contient déjà un en-tête LUKS. Remplacer l'en-tête détruira les emplacements de clés actuels.

Are you sure? (Type uppercase yes): YES

2.2 - Effacement

Sous réserve que le mot de passe n'ait pas été divulgué et que l'en-tête n'ait pas été recopié, la suppression de l'en-tête rend les données irrécupérables, ce qui peut-être utilisé comme méthode d'effacement des données.

$ sudo cryptsetup luksDump /dev/sdb1 |grep "offset:"

     offset: 16777216 [bytes]

    Area offset:32768 [bytes]

Dans le cas présent, l'offset est de 16777216 octets, soit 16 MiB

$ calc 16777216/1024/1024

        16

$ sudo cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file header

$ du -h header

16M    header

$ sudo dd if=/dev/zero of=/dev/sdb1 bs=1M count=16

16+0 enregistrements lus

16+0 enregistrements écrits

16777216 octets (17 MB, 16 MiB) copiés, 0,00894077 s, 1,9 GB/s